'''parameterized参数化'''


# 1.导包
import json
import unittest
from parameterized import parameterized
from tools import add


# 组织测试数据[(),(),()]
# data = [(3, 1, 2), (5,2,3)]
# 组织测试数据方法二,定义一个打开外部文件读取数据的方法，并转化成列表类型数据,并return返回列表出去。
def buid_data():
    with open('data/data.json', encoding='utf-8') as f:
        result = json.load(f)
        data = []
        for i in result:
            data.append((i.get('a'), i.get('b'), i.get('c')))
    return data


# # 2.定义测试类
class TestAdd(unittest.TestCase):
    @parameterized.expand(buid_data())
    # 3.书写测试方法（用到的测试数据使用变量代替）
    def test_method1(self, a, b, c):
        self.assertEqual(a, add(b, c))
